// 导入需要的对象
const express = require('express')
const Joi = require('joi')
const router = express.Router()
const PATH = '/joiTest'

/**
 * @typedef Error
 * @property {string} code.required
 */

/**
 * @typedef Response
 * @property {[integer]} code
 */

/**
 * @typedef User  - 用户模型helloJson
 * @property {integer} id.required  - 用户ID - eg: 123
 * @property {string} name.required - 用户名 - eg: name
 */
/**
 * json对象参数
 * @route POST /joiTest/helloJson
 * @group joiTest
 * @param {User.model} user.body.required - 用户,注意body
 * @returns {User.model} 200 - 用户信息
 * @returns {Error.model}  500 - 错误信息
 * @security JWT
 */
router.post('/helloJson', function (req, res) {
  const schema = Joi.object({
    id: Joi.number().required().label('用户ID不合法'),
    name: Joi.string().min(11).label('用户名不合法')
  })
  const { error } = schema.validate(req.body)
  if (error && error.details.length > 0) {
    res.send({
      msg: error.details[0].message
    })
  } else {
    res.json(req.body)
  }
})

module.exports = (app) => {
  app.use(PATH, router)
}
